/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.ufpr.inf.escel.brain.model.po;

import br.ufpr.inf.escel.brain.util.PrimitivosUtils;
import br.ufpr.inf.escel.brain.util.StringUtils;
import java.util.Random;

/**
 *
 * @author gustavo
 */
public class Parametro {

    private String parametro;
    private int indiceParametro;
    private Random random = new Random();

    public Parametro(String parametro, int indiceParametro) {
        this.parametro = parametro;
        this.indiceParametro = indiceParametro;
    }

    /**
     * Verifica qual o tipo do dado do valor, e em seguida
     * gera um novo valor aleatoria mente, e por fim, retorna
     *
     * @return novo valor gerado
     * @since 2.6
     */
    public Parametro modificaTipoParametro() {

        StringBuffer out = new StringBuffer(" ");

        //verifica o tipo dele, e gera um novo valor
        if (PrimitivosUtils.isInteger(toString())) {
            out.append(String.valueOf(random.nextInt(100)));

        } else if (PrimitivosUtils.isPalavra(toString())) {
            out.append(StringUtils.gerarTipoString());

        } else if (toString().length() == 1 &&
                Character.isLetter(toString().charAt(0))) {

            out.append('x');
        }

        return new Parametro(out.toString().trim(), getIndiceParametro());
    }

    @Override
    public String toString() {
        return parametro;
    }

    public int getIndiceParametro() {
        return indiceParametro;
    }
}
